package 网络编程UDP通信.服务端收消息;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {
    public static void main(String[] args) throws Exception{
        System.out.println("服务端启动");
        // 1. 创建一个服务端对象
        DatagramSocket socket = new DatagramSocket(6666);

        // 2. 创建一个数据包对象, 用于接收数据的
        byte[] buffer = new byte[1024 * 64]; // 64KB
        DatagramPacket packet = new DatagramPacket(buffer,buffer.length);

        // 3. 开始正式使用数据包来接收客户端发来的数据
        socket.receive(packet);

        // 4. 从字节数组中把接收到的数据直接打印出来
        // 实现读取多少, 倒多少原则(目的是不要倒多数据)
        int len = packet.getLength();
        String s = new String(buffer,0,len);
        System.out.println(s);

        System.out.println(packet.getAddress().getHostAddress()); // 客户端的IP地址

        System.out.println(packet.getPort());

        // 5. 释放资源
        socket.close();

    }
}
